/* 
 * File:   SelfDrawable.h
 * Author: RedEyedKiller
 *
 * Created on 22 Σεπτέμβριος 2010, 7:17 μμ
 */

#ifndef SELFDRAWABLE_H
#define	SELFDRAWABLE_H

#include "Drawable.h"

class SelfDrawable : public Drawable
{
public:
    SelfDrawable();
    SelfDrawable(const SelfDrawable& orig);
    virtual ~SelfDrawable();

    virtual bool IsVisible(const Camera& camera) const;

    virtual Math::Vector2F GetPosition() const;
    virtual void SetPosition(const Math::Vector2F& position);
    void Draw(sdl::GraphicsCore *gCore, Camera *camera);
    void SetAlwaysVisible(bool alwaysVisible);
    bool IsAlwaysVisible() const;

    virtual int GetX() const;
    virtual void SetX(int newX);
    virtual int GetY() const;
    virtual void SetY(int newY);
    virtual int GetWidth() const;
    virtual int GetHeight() const;
private:
    Math::Vector2F position;

    bool alwaysVisible;
};

#endif	/* SELFDRAWABLE_H */

